Turbo codes have found widespread application in systems that use error correcting coding and decoding. In many such systems, a Cyclic Redundancy Check (CRC) code is appended to a frame of data before it enters the turbo encoder, such as the parallel turbo encoder shown in FIG. 1. The encoding of the frame of data, together with the CRC, produces the systematic bits xk, and the parity bits zk and zk′. These bits are then punctured (deleted) to produce the required code rate. Transmission subjects the encoded signal to noise and channel perturbations. At the receiver, the turbo decoder recovers the original frame of data and the CRC.
The decoding process, such as that implemented by the turbo decoder for parallel concatenated codes shown in FIG. 2, is considerably more complex than the encoding process, and is responsible for a significant fraction of the total computation in the transceiver. The decoding process iterates a number of times (such as in iteration loop 220) before the output log-likelihood ratios are converted into hard-decisions 221. For each iteration, the error rate improves, as shown in FIG. 3, but with diminishing returns.
Conventional turbo decoding schemes tend to perform unnecessary iterations of the turbo decoder after decoding the frame correctly. This wastes time and computational resources.
To reduce computational resources and power consumption there has been some consideration of early-termination techniques. The most popular technique for early-termination of turbo decoders relies on the CRC code. In normal operation, after channel decoding, the frame of data passes through a CRC decoder to verify that the frame of data is correct. However, there is a possibility that the CRC will indicate that the frame of data is correct, when in fact the frame is incorrect. This will occur with a probability of approximately:
      P    fail    <            P      FER              2              n        -        k            
where PFER is the frame error rate, and n-k is the length of the CRC, which is carefully chosen to give an acceptable quality of perceived service. If such an error occurs, the incorrect data frame will be tagged as correct and passed to the higher protocol layers, with serious negative effects, particularly with compressed data sources. A scheme that uses the CRC for early termination of the turbo decoding process works by passing decoded frames of data to the CRC decoder on every turbo decoder iteration. Once the CRC code passes, the turbo decoder is terminated. Based on the error probability just discussed, the overall probability of mis-diagnosing an incorrect frame as correct in such a CRC termination scheme is:
      P    fail    ≈            LP      FER              2              n        -        k            
where L is the average number of turbo decoder iterations. Such a failure rate is unacceptable for many types of service.
Accordingly, embodiments of this invention seek to provide improved apparatus and methods of turbo decoder termination.